MongoDB তে সিকিউরিটি একটি গুরুত্বপূর্ণ বিষয়, কারণ এটি ডেটাবেসে থাকা তথ্যের সুরক্ষা এবং এক্সেস কন্ট্রোল নিশ্চিত করে। MongoDB বিভিন্ন সিকিউরিটি ফিচার প্রদান করে, যেমন অথেন্টিকেশন, অথরাইজেশন, এনক্রিপশন, এবং অডিট লগিং। এইসব ফিচারের মাধ্যমে MongoDB ডেটাবেসে তথ্যের সুরক্ষা নিশ্চিত করা যায়।
অথেন্টিকেশন হল একটি প্রক্রিয়া, যেখানে MongoDB সার্ভারে অ্যাক্সেস করার জন্য ব্যবহারকারীর পরিচয় যাচাই করা হয়। MongoDB তে ডিফল্টভাবে অথেন্টিকেশন সক্ষম থাকে না, কিন্তু এটি চালু করার জন্য auth
সেটিং ব্যবহার করতে হয়।
MongoDB তে Authentication চালু করার জন্য, MongoDB সার্ভারের কনফিগারেশন ফাইলে --auth
ফ্ল্যাগ ব্যবহার করতে হয়।
mongod --auth --dbpath /data/db
একবার অথেন্টিকেশন চালু হলে, প্রতিটি ব্যবহারকারীকে একটি username এবং password দিয়ে লগ ইন করতে হবে।
অথরাইজেশন হল ব্যবহারকারীকে সিস্টেমের নির্দিষ্ট ডেটাবেস বা কালেকশনে অ্যাক্সেস দেওয়ার প্রক্রিয়া। MongoDB তে Role-Based Access Control (RBAC) পদ্ধতি ব্যবহার করা হয়, যার মাধ্যমে প্রতিটি ব্যবহারকারী নির্দিষ্ট ভূমিকা (role) দিয়ে অ্যাক্সেস পায়।
MongoDB তে বিভিন্ন ধরনের প্রি-ডিফাইন্ড রোলস রয়েছে, যেমন:
read
: শুধু ডেটা পড়ার অনুমতি।readWrite
: ডেটা পড়া এবং লেখা (insert, update, delete) অনুমতি।dbAdmin
: ডেটাবেস প্রশাসনিক কাজের অনুমতি (যেমন ইনডেক্স তৈরি)।root
: সব ধরনের অ্যাক্সেস (admin, read, write)।MongoDB তে নতুন রোল তৈরি করতে createRole
ব্যবহার করা হয়। উদাহরণ:
db.createRole({
role: "customRole",
privileges: [
{ resource: { db: "test", collection: "users" }, actions: [ "find", "update" ] }
],
roles: []
});
MongoDB তে ডেটার সুরক্ষা নিশ্চিত করার জন্য এনক্রিপশন খুবই গুরুত্বপূর্ণ। MongoDB দুটি ধরণের এনক্রিপশন সমর্থন করে:
এটি MongoDB ক্লায়েন্ট এবং সার্ভারের মধ্যে প্রেরিত ডেটা এনক্রিপ্ট করে। TLS/SSL প্রোটোকল ব্যবহার করে এটি নিশ্চিত করা হয়। এটি MongoDB সার্ভার ও ক্লায়েন্টের মধ্যে যোগাযোগের সময় ডেটা সুরক্ষিত রাখে।
mongod --sslMode requireSSL --sslPEMKeyFile /path/to/server.pem --sslCAFile /path/to/ca.pem
এটি MongoDB ডেটাবেসের ডেটাকে ডিস্কে সুরক্ষিত রাখতে ব্যবহৃত হয়। MongoDB 4.2 এবং তার পরবর্তী সংস্করণে Encrypted Storage Engine সমর্থিত।
MongoDB তে এনক্রিপশন অ্যাট রেস্ট চালু করতে:
mongod --enableEncryption --encryptionKeyFile /path/to/keyfile
MongoDB তে অডিটিং ফিচার ব্যবহারকারীদের ডেটাবেসে কার্যকলাপ ট্র্যাক করতে সাহায্য করে। অডিটিং লগ MongoDB তে যে সমস্ত কার্যক্রম চালানো হচ্ছে তা রেকর্ড করে রাখে, যেমন লগইন, ডেটাবেস/কালেকশন ম্যানিপুলেশন ইত্যাদি।
MongoDB তে অডিটিং চালু করতে auditLog
ফিচার ব্যবহার করতে হয়। কনফিগারেশন এডিট করে এবং লগ ফাইলের পাথ সেট করে অডিটিং চালু করা হয়।
mongod --auditDestination file --auditFormat JSON --auditPath /path/to/audit.log
MongoDB তে নেটওয়ার্ক সিকিউরিটি নিশ্চিত করার জন্য কিছু পদক্ষেপ নিতে হয়। এর মধ্যে রয়েছে:
mongod --bind_ip 127.0.0.1
এটি MongoDB কে শুধুমাত্র লোকালহোস্ট থেকে অ্যাক্সেস করতে অনুমতি দেয়।
MongoDB তে সুরক্ষিত ব্যাকআপ ও রিস্টোর প্রক্রিয়া নিশ্চিত করতে, role-based access ব্যবহার করে শুধুমাত্র অনুমোদিত ব্যবহারকারীকে ব্যাকআপ এবং রিস্টোরের অনুমতি দেওয়া উচিত। MongoDB তে backup
রোল এর মাধ্যমে ব্যাকআপ পরিচালনা করা হয়।
MongoDB তে সিকিউরিটি ব্যবস্থাপনা অত্যন্ত গুরুত্বপূর্ণ, এবং এটি বিভিন্ন স্তরের সুরক্ষা প্রদান করে। অথেন্টিকেশন, অথরাইজেশন, এনক্রিপশন, অডিটিং, এবং নেটওয়ার্ক সিকিউরিটি এর মাধ্যমে MongoDB ডেটাবেসের নিরাপত্তা নিশ্চিত করা যায়। MongoDB এর মাধ্যমে ডেটার গোপনীয়তা এবং নিরাপত্তা নিশ্চিত করার জন্য এই সিকিউরিটি ফিচারগুলো ব্যবহার করা হয়।
MongoDB তে Authentication এবং Authorization দুটি অত্যন্ত গুরুত্বপূর্ণ নিরাপত্তা ফিচার, যা ডেটাবেসের অ্যাক্সেস এবং ডেটা সুরক্ষা নিশ্চিত করে। যদিও Authentication এবং Authorization দুটি আলাদা প্রক্রিয়া, এগুলি একসাথে কাজ করে MongoDB এর নিরাপত্তা গঠন করতে। নিচে MongoDB তে Authentication এবং Authorization এর কার্যপদ্ধতি বিস্তারিতভাবে আলোচনা করা হলো।
Authentication হল একটি প্রক্রিয়া যার মাধ্যমে MongoDB ডেটাবেস সার্ভারে এক্সেস পাওয়ার জন্য ব্যবহারকারীর পরিচয় যাচাই করা হয়। MongoDB তে Authentication নিশ্চিত করে যে শুধুমাত্র অনুমোদিত ব্যবহারকারীরাই ডেটাবেসে অ্যাক্সেস করতে পারে।
MongoDB তে Authentication জন্য বিভিন্ন পদ্ধতি রয়েছে:
Username and Password Authentication: MongoDB ডেটাবেসে একজন ব্যবহারকারী নাম এবং পাসওয়ার্ডের মাধ্যমে লগ ইন করতে পারেন। ডেটাবেসে একটি ব্যবহারকারী তৈরি করতে হয় এবং সেখান থেকে পাসওয়ার্ড প্রদান করতে হয়।
use admin
db.createUser({
user: "myUserAdmin",
pwd: "abc123", // Password
roles: [{ role: "userAdminAnyDatabase", db: "admin" }]
})
MongoDB তে Authentication সক্রিয় করতে, MongoDB কনফিগারেশন ফাইল (mongod.conf) এ security
বিভাগে authorization
প্যারামিটার ব্যবহার করে enabled
সেট করতে হয়।
security:
authorization: "enabled"
এভাবে সেট করা হলে, MongoDB ডেটাবেসে কেবলমাত্র Authentication করা ব্যবহারকারীরাই লগ ইন করতে পারবে।
Authorization হল একটি প্রক্রিয়া যার মাধ্যমে নির্ধারিত করা হয়, কোন ব্যবহারকারী বা রোল কোন অ্যাক্সেস অনুমতি পাবে। MongoDB তে Authorization কনফিগার করার মাধ্যমে আপনি নির্দিষ্ট রোলের উপর নির্ভর করে ব্যবহারকারীর জন্য বিশেষ অ্যাক্সেস কন্ট্রোল সেট করতে পারেন।
MongoDB তে Role-Based Access Control (RBAC) ব্যবহার করা হয়, যেখানে নির্দিষ্ট রোলের জন্য বিভিন্ন অনুমতি দেওয়া হয়। এটি ব্যবহারকারীদের কেবলমাত্র সেই কাজগুলো করতে দেয় যা তাদের রোলের অধিকার।
MongoDB তে পূর্বনির্ধারিত কিছু রোল রয়েছে, যেমন:
MongoDB তে আপনি কাস্টম রোলও তৈরি করতে পারেন। উদাহরণস্বরূপ:
use admin
db.createRole({
role: "readAndWriteRole",
privileges: [
{ resource: { db: "myDatabase", collection: "" }, actions: [ "find", "insert", "update", "remove" ] }
],
roles: []
})
এখানে একটি কাস্টম রোল তৈরি করা হয়েছে, যার মাধ্যমে ব্যবহারকারী ডেটাবেসের মধ্যে ডেটা পড়া, লেখা, আপডেট এবং মুছতে পারবে।
ব্যবহারকারীর জন্য একটি রোল অ্যাসাইন করতে:
db.createUser({
user: "myUser",
pwd: "password123",
roles: [{ role: "readWrite", db: "myDatabase" }]
})
এটি myUser
নামক ব্যবহারকারীকে myDatabase
ডেটাবেসের জন্য readWrite
রোল অ্যাসাইন করবে, যার মাধ্যমে সে ওই ডেটাবেসে ডেটা পড়তে এবং লিখতে পারবে।
MongoDB তে Authentication এবং Authorization একসাথে ব্যবহার করলে, এটি শক্তিশালী নিরাপত্তা ব্যবস্থা তৈরি করতে সহায়ক হয়। সাধারণভাবে, প্রথমে Authentication সক্রিয় করতে হবে এবং তারপর ব্যবহারকারী বা রোলের উপর ভিত্তি করে Authorization কনফিগার করতে হবে।
Authentication সক্রিয় করতে:mongod.conf
ফাইলের security.authorization
প্যারামিটার enabled
করে MongoDB তে Authentication চালু করুন।
security:
authorization: "enabled"
MongoDB তে Authentication এবং Authorization ডেটাবেসের নিরাপত্তা ব্যবস্থাকে শক্তিশালী করে। Authentication ব্যবহারকারীর পরিচয় যাচাই করতে ব্যবহৃত হয়, যেখানে Authorization ব্যবহারকারীদের অ্যাক্সেস অনুমতি নির্ধারণ করে। MongoDB তে Role-Based Access Control (RBAC) মডেল ব্যবহৃত হয়, যার মাধ্যমে ব্যবহারকারী নির্দিষ্ট রোলের অধীনে ডেটাবেসে সীমিত কাজ করতে পারে। Authentication এবং Authorization এর সঠিক কনফিগারেশন MongoDB ডেটাবেসে নিরাপদ অ্যাক্সেস এবং কার্যকরী কন্ট্রোল নিশ্চিত করে।
Role-Based Access Control (RBAC) MongoDB তে একটি নিরাপত্তা ব্যবস্থা যা ব্যবহারকারীদের নির্দিষ্ট কাজ করার অনুমতি নির্ধারণ করে। RBAC এর মাধ্যমে, আপনি ব্যবহারকারীদের বিভিন্ন ভূমিকা (role) নির্ধারণ করতে পারেন, এবং তাদের জন্য নির্দিষ্ট অধিকার (privileges) সংজ্ঞায়িত করতে পারেন। এটি MongoDB ডেটাবেসে একটি নিরাপদ এবং নিয়ন্ত্রিত পরিবেশ তৈরি করতে সহায়তা করে, যেখানে আপনি কেবলমাত্র নির্দিষ্ট ব্যবহারের উদ্দেশ্যে অনুমতি প্রদান করতে পারেন।
MongoDB তে RBAC এর মাধ্যমে আপনি ডেটাবেসের মধ্যে কী করতে পারবেন তা নিয়ন্ত্রণ করতে পারেন, যেমন: ডেটা পড়া, আপডেট করা, মুছা, এবং ডেটাবেস তৈরি করা।
RBAC ব্যবহারে, ব্যবহারকারীরা বিভিন্ন ভূমিকা (role) ভিত্তিক অনুমতি পায়। MongoDB তে ভূমিকা হলো একটি সেট অব অনুমতি, যা ব্যবহারকারীদের বিভিন্ন ডেটাবেস অপারেশন করার অধিকার দেয়। কিছু সাধারণ ভূমিকা হলো:
MongoDB তে RBAC কনফিগার করার জন্য আপনাকে প্রথমে ব্যবহারকারী তৈরি করতে হবে এবং তাকে একটি বা একাধিক ভূমিকা (role) অ্যাসাইন করতে হবে।
ব্যবহারকারী তৈরি করা:
MongoDB তে একটি নতুন ব্যবহারকারী তৈরি করতে createUser
কমান্ড ব্যবহার করতে হয়:
use admin
db.createUser({
user: "john_doe",
pwd: "password123",
roles: [{ role: "readWrite", db: "myDatabase" }]
})
এখানে:
user
: নতুন ব্যবহারকারীর নাম।pwd
: নতুন ব্যবহারকারীর পাসওয়ার্ড।roles
: ভূমিকা এবং ডেটাবেস, যেখানে ভূমিকা এই ব্যবহারকারীর জন্য নির্ধারণ করা হবে। উদাহরণস্বরূপ, readWrite
ভূমিকা myDatabase
ডেটাবেসের জন্য দেওয়া হয়েছে।ভূমিকা নির্ধারণ করা:
MongoDB তে একটি ভূমিকা তৈরির জন্য createRole
কমান্ড ব্যবহার করতে হয়:
use admin
db.createRole({
role: "customRole",
privileges: [
{
resource: { db: "myDatabase", collection: "" },
actions: [ "find", "insert" ]
}
],
roles: []
})
এখানে:
role
: ভূমিকার নাম।privileges
: এই ভূমিকার অধীনে অনুমতি দেওয়া কাজ।resource
: ডেটাবেস বা কালেকশন যেখানে এই ভূমিকা প্রযোজ্য হবে।actions
: যে কাজগুলো এই ভূমিকার অধীনে করা যাবে, যেমন find
, insert
ইত্যাদি।MongoDB তে একটি ব্যবহারকারীকে নির্দিষ্ট ভূমিকা অ্যাসাইন করা হয় roles
এর মাধ্যমে। আপনি বিভিন্ন ভূমিকা একাধিক ব্যবহারকারীর জন্য অ্যাসাইন করতে পারেন।
use admin
db.grantRolesToUser("john_doe", [{ role: "dbAdmin", db: "myDatabase" }])
এখানে, john_doe
ব্যবহারকারীকে dbAdmin
ভূমিকা দেয়া হয়েছে myDatabase
ডেটাবেসের জন্য।
MongoDB তে Role-Based Access Control (RBAC) একটি শক্তিশালী নিরাপত্তা ব্যবস্থা যা ব্যবহারকারীদের ভূমিকা নির্ধারণ করে তাদের অনুমতি নিয়ন্ত্রণ করতে সহায়তা করে। এই সিস্টেমের মাধ্যমে আপনি প্রতিটি ব্যবহারকারীকে নির্দিষ্ট কাজের জন্য অনুমতি প্রদান করতে পারেন, যেমন ডেটা পড়া, লেখার অনুমতি অথবা ডেটাবেস প্রশাসনিক কাজের অনুমতি। RBAC MongoDB ডেটাবেসে ডেটার নিরাপত্তা, অ্যাক্সেস কন্ট্রোল এবং ব্যবস্থাপনা সহজ করে তোলে, যা ডেটাবেসের সুরক্ষা এবং কার্যক্ষমতা বাড়ায়।
MongoDB তে TLS/SSL কনফিগারেশন এবং encryption ডেটা নিরাপত্তা নিশ্চিত করতে ব্যবহৃত হয়। TLS (Transport Layer Security) এবং SSL (Secure Sockets Layer) দুটি প্রোটোকলই ডেটা ট্রান্সমিশনের সময় নিরাপত্তা প্রদান করে, যা ডেটার গোপনীয়তা এবং অখণ্ডতা নিশ্চিত করে। MongoDB তে TLS/SSL এবং encryption ব্যবহৃত হয় ডেটাবেসের নিরাপত্তা বাড়ানোর জন্য, বিশেষ করে যখন ডেটা সংবেদনশীল বা ক্লাউড পরিবেশে ব্যবহৃত হয়।
TLS (এবং পুরোনো SSL) MongoDB সার্ভারের সাথে ক্লায়েন্টের মধ্যে নিরাপদ সংযোগ স্থাপনের জন্য ব্যবহৃত হয়। এটি ডেটার এনক্রিপশন নিশ্চিত করে, যাতে ট্রান্সমিশনের সময় ডেটা চুরি বা পরিবর্তিত না হয়।
MongoDB তে TLS/SSL কনফিগার করতে, আপনাকে কিছু স্টেপ অনুসরণ করতে হবে:
সার্টিফিকেট তৈরি করতে OpenSSL ব্যবহার করতে পারেন:
openssl genpkey -algorithm RSA -out mongodb-server.key
openssl req -new -key mongodb-server.key -out mongodb-server.csr
openssl x509 -req -in mongodb-server.csr -signkey mongodb-server.key -out mongodb-server.crt
MongoDB কনফিগারেশন ফাইলে TLS/SSL সক্রিয় করুন: MongoDB তে TLS/SSL সক্রিয় করতে, MongoDB কনফিগারেশন ফাইল (যেমন mongod.conf
) এ নিম্নলিখিত সেটিংস যোগ করুন:
net:
ssl:
mode: requireSSL
PEMKeyFile: /path/to/mongodb-server.crt
PEMKeyPassword: <password> # If the private key is encrypted
CAFile: /path/to/ca.crt # (Optional) Certificate Authority file
MongoDB সার্ভার পুনরায় শুরু করুন: কনফিগারেশন সম্পন্ন হওয়ার পর, MongoDB সার্ভার পুনরায় চালু করুন:
sudo systemctl restart mongod
ক্লায়েন্টে SSL সক্রিয় করুন: MongoDB ক্লায়েন্টে TLS/SSL সক্রিয় করতে, আপনি নিম্নলিখিত কমান্ড ব্যবহার করতে পারেন:
mongo --ssl --sslCAFile /path/to/ca.crt --sslPEMKeyFile /path/to/mongodb-client.pem --host <server-ip> --port <port>
এখানে --sslCAFile
আপনার সার্টিফিকেট অথরিটি ফাইল এবং --sslPEMKeyFile
ক্লায়েন্টের সার্টিফিকেট ফাইল হবে।
MongoDB তে এনক্রিপশন ডেটার গোপনীয়তা এবং সুরক্ষা নিশ্চিত করতে ব্যবহৃত হয়। MongoDB তে দুই ধরনের এনক্রিপশন ব্যবহৃত হয়: Encryption at Rest এবং Encryption in Transit।
Encryption in Transit ডেটার এনক্রিপশন ট্রান্সমিশনের সময় নিশ্চিত করে। MongoDB তে TLS/SSL কনফিগারেশন ব্যবহার করে ডেটা ট্রান্সমিশনের সময় এনক্রিপশন করা হয়। এই এনক্রিপশন ডেটাকে নিরাপদ রাখে যখন এটি সার্ভার থেকে ক্লায়েন্ট বা সার্ভার থেকে সার্ভারে চলে।
Encryption at Rest হল ডেটাবেসে ডেটা স্টোর করার সময় এনক্রিপশন করা। MongoDB Encyption at Rest সমর্থন করে এবং এটি ডেটাবেসে থাকা ডেটা সুরক্ষিত রাখে যদি ড্রাইভ চুরি বা অন্য কোনো অবৈধ প্রবেশের ঘটনা ঘটে।
MongoDB তে Encryption at Rest সক্রিয় করতে আপনাকে MongoDB Enterprise ব্যবহার করতে হবে, কারণ এটি শুধুমাত্র এন্টারপ্রাইজ সংস্করণে পাওয়া যায়।
MongoDB Enterprise এ এনক্রিপশন কনফিগার করতে, আপনার mongod.conf
ফাইলে নিম্নলিখিত সেটিংস যোগ করতে হবে:
security:
encryptionKeyFile: /path/to/encryption-keyfile
enableEncryption: true
এছাড়া, MongoDB এ এনক্রিপশন কনফিগার করার জন্য Key Management সিস্টেম (KMS) যেমন AWS KMS বা Google Cloud KMS ব্যবহার করা যেতে পারে।
MongoDB তে TLS/SSL কনফিগারেশন এবং encryption ব্যবহৃত হয় ডেটার নিরাপত্তা ও গোপনীয়তা নিশ্চিত করতে। TLS/SSL ডেটা ট্রান্সমিশনের সময় এনক্রিপশন প্রদান করে, যেখানে Encryption at Rest ডেটাবেসে সংরক্ষিত ডেটাকে এনক্রিপ্ট করে। MongoDB তে এই ফিচারগুলি ব্যবহার করে ডেটা সুরক্ষিত রাখা সম্ভব হয় এবং ডেটা এক্সেসের সময় চুরি বা অবৈধ প্রবেশ প্রতিরোধ করা যায়।
MongoDB একটি শক্তিশালী ডেটাবেস সিস্টেম, তবে এটি নিরাপত্তার জন্য কিছু অতিরিক্ত কনফিগারেশন এবং কার্যকরী পদক্ষেপের প্রয়োজন। ডেটাবেস অ্যাপ্লিকেশনগুলির নিরাপত্তা নিশ্চিত করতে MongoDB এর জন্য কিছু সেরা নিরাপত্তা অভ্যাস অনুসরণ করা উচিত। এখানে MongoDB এর জন্য কিছু গুরুত্বপূর্ণ Security Best Practices আলোচনা করা হল:
MongoDB ডিফল্টভাবে প্রমাণীকরণ (authentication) নিষ্ক্রিয় থাকে, তাই এটি সক্রিয় করা অত্যন্ত গুরুত্বপূর্ণ। MongoDB তে প্রমাণীকরণ সক্ষম করার মাধ্যমে, কেবলমাত্র অনুমোদিত ব্যবহারকারীরাই ডেটাবেসে প্রবেশ করতে পারবে।
MongoDB Authentication সক্ষম করা:
MongoDB তে প্রমাণীকরণ সক্ষম করতে MongoDB এর --auth
ফ্ল্যাগ ব্যবহার করতে হবে:
mongod --auth
ব্যবহারকারী তৈরি করা:
MongoDB তে ব্যবহারকারী তৈরি করতে admin
ডাটাবেসে ব্যবহারকারী তৈরি করতে হবে:
use admin
db.createUser({
user: "myUserAdmin",
pwd: "myUserAdminPassword",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})
MongoDB তে Role-Based Access Control (RBAC) ব্যবহার করে আপনি ব্যবহারকারীদের বিভিন্ন স্তরের অ্যাক্সেস নিয়ন্ত্রণ করতে পারেন। MongoDB তে বিভিন্ন ধরনের ভূমিকা (roles) রয়েছে, যেমন read
, readWrite
, dbAdmin
, userAdmin
, ইত্যাদি।
ব্যবহারকারীর ভূমিকা নির্ধারণ করা: MongoDB তে ব্যবহারকারীর জন্য সঠিক ভূমিকা (role) নির্ধারণ করা খুবই গুরুত্বপূর্ণ। এটি নিশ্চিত করবে যে ব্যবহারকারী কেবল তার অনুমোদিত কাজগুলোই করতে পারে।
উদাহরণস্বরূপ, একটি নির্দিষ্ট ডাটাবেসের জন্য একটি ব্যবহারকারীকে শুধু পড়ার অনুমতি দেওয়া:
use myDatabase
db.createUser({
user: "myReader",
pwd: "myPassword",
roles: [ { role: "read", db: "myDatabase" } ]
})
MongoDB তে ট্রান্সমিশন ডেটা এনক্রিপশন সক্রিয় করা উচিত, বিশেষত যখন ডেটাবেস এবং ক্লায়েন্ট সার্ভার দূরবর্তী অবস্থানে থাকে। MongoDB SSL (Secure Sockets Layer) বা TLS (Transport Layer Security) এনক্রিপশন সমর্থন করে।
SSL/TLS এনক্রিপশন সক্ষম করা: MongoDB সার্ভারে SSL এনক্রিপশন সক্ষম করতে, mongod
এবং mongos
কমান্ডে --sslMode
ফ্ল্যাগ ব্যবহার করতে হবে:
mongod --sslMode requireSSL --sslPEMKeyFile /path/to/server.pem
এবং ক্লায়েন্টে SSL সংযোগ সক্রিয় করতে:
mongo --ssl --sslCAFile /path/to/ca.pem --sslPEMKeyFile /path/to/client.pem
MongoDB সার্ভারটি বাইরের অ্যাক্সেস থেকে সুরক্ষিত রাখা অত্যন্ত গুরুত্বপূর্ণ। আপনার সার্ভারের সাথে সম্পর্কিত ফায়ারওয়াল কনফিগারেশন ঠিকভাবে সেট করা উচিত, যেন শুধুমাত্র অনুমোদিত IP অ্যাড্রেস থেকে MongoDB সার্ভারে অ্যাক্সেস পাওয়া যায়।
MongoDB তে ডেটা স্টোর করার সময় যদি এনক্রিপশন প্রয়োজন হয়, তবে Encryption at Rest ব্যবহার করা উচিত। MongoDB Enterprise Edition এ Encrypted Storage Engine বৈশিষ্ট্য রয়েছে, যা ডেটার এনক্রিপশন নিশ্চিত করে।
Encrypted Storage Engine সক্রিয় করা:
MongoDB Enterprise Edition এ ইনস্টল করার সময় এনক্রিপশন সক্ষম করা যেতে পারে:
mongod --enableEncryption --encryptionKeyFile /path/to/keyfile
MongoDB সার্ভারের নিরাপত্তা নিশ্চিত করতে লগ ফাইলগুলি মনিটর করা গুরুত্বপূর্ণ। লগ ফাইলগুলি ব্যবহারকারীর কার্যক্রম এবং ডেটাবেসে যেকোনো সন্দেহজনক কার্যক্রমের জন্য একটি কার্যকরী সরঞ্জাম হিসেবে কাজ করতে পারে।
MongoDB লগ ফাইল কনফিগার করা:
MongoDB এর লগ ফাইল কনফিগারেশন আপনি mongod.conf
ফাইলে systemLog
সেটিংস এর মাধ্যমে করতে পারেন:
systemLog:
destination: file
path: /var/log/mongodb/mongod.log
logAppend: true
MongoDB Atlas
বা তৃতীয় পক্ষের মনিটরিং টুল (যেমন: Prometheus, Grafana) ব্যবহার করা যেতে পারে।MongoDB ডেটাবেসে নিরাপদ পাসওয়ার্ড ব্যবহার অত্যন্ত গুরুত্বপূর্ণ। পাসওয়ার্ড অবশ্যই শক্তিশালী এবং আনপ্রেডিক্টেবল হওয়া উচিত।
MongoDB Enterprise Edition এ Audit Logging সুবিধা উপলব্ধ, যা ডেটাবেসের সকল অ্যাক্সেস এবং কার্যক্রম ট্র্যাক করতে সহায়তা করে। এটি নিরাপত্তা ঝুঁকি এবং সন্দেহজনক কার্যক্রম সনাক্ত করতে সহায়ক।
Audit Log সক্রিয় করা: MongoDB তে Audit Logging সক্রিয় করার জন্য mongod.conf
ফাইলে এডিট করতে হবে:
security:
authorization: enabled
auditLog:
destination: file
path: /var/log/mongodb/audit.log
MongoDB এর নিরাপত্তা নিশ্চিত করার জন্য অনেক পদক্ষেপ রয়েছে, যেমন প্রমাণীকরণ এবং অনুমতির সঠিক কনফিগারেশন, এনক্রিপশন সক্ষম করা, নিরাপদ নেটওয়ার্ক কনফিগারেশন এবং মনিটরিং। MongoDB এর জন্য সেরা নিরাপত্তা অভ্যাস অনুসরণ করলে ডেটাবেসের সুরক্ষা, পারফরম্যান্স, এবং অ্যাভেইলেবিলিটি নিশ্চিত করা সম্ভব। MongoDB ডেটাবেসে শক্তিশালী নিরাপত্তা কৌশলগুলি বাস্তবায়ন করা অত্যন্ত গুরুত্বপূর্ণ, বিশেষত যখন আপনার ডেটাবেসে গুরুত্বপূর্ণ বা সংবেদনশীল তথ্য সংরক্ষিত থাকে।
Read more